package com.my12306.user.service.auth;

import com.baomidou.mybatisplus.extension.service.IService;
import com.my12306.common.util.PageUtils;
import com.my12306.common.util.response.ResponseData;
import com.my12306.user.model.po.auth.UserRoleEntity;

import java.util.List;
import java.util.Map;

/**
 * @author ËÕÄÁÏ¦
 * @email xxxxxx@qq.com
 * @date 2020-05-19 05:10:08
 */
public interface UserRoleService extends IService<UserRoleEntity> {

    PageUtils queryPage(Map<String, Object> params);

    /**
     * 根据用户id 查询所有用户的角色
     *
     * @param userId
     * @return
     */
    List<Long> selectRoleIdByUserId(Long userId);

    /**
     * 添加用户-角色关系
     *
     * @param userRoleEntities
     * @return
     */
    Boolean saveRoleUser(List<UserRoleEntity> userRoleEntities);

    /**
     * 组装bean
     *
     * @param roleIds
     * @param userId
     * @return
     */
    List<UserRoleEntity> createUserRole(List<Long> roleIds, Long userId);

    /**
     * 根据关系 id 批量删除用户和角色的关系
     *
     * @param ids
     * @return
     */
    ResponseData deleteUserRoleByIds(List<Long> ids);


    /**
     * 根据用户id 批量删除用户和角色的关系
     *
     * @param ids
     * @return
     */
    ResponseData deleteUserRoleByUserIds(List<Long> ids);

    /**
     * 根据角色id 批量删除用户和角色的关系
     *
     * @param ids
     * @return
     */
    ResponseData deleteUserRoleByRoleIds(List<Long> ids);

    Boolean isEmptyAdminByUserId(Long userId);
}

